package com.fowo.api.model.product.sub;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 组合产品包含产品 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class ProductSubImportPo {

  /** 所属产品 */
  @ExcelProperty("所属产品")
  @Size(max = 500, message = "所属产品长度不能超过500")
  private String productIdName;

  @ExcelIgnore
  @Schema(title = "所属产品")
  private String productId;

  /** 产品 */
  @ExcelProperty("产品")
  @Size(max = 500, message = "产品长度不能超过500")
  private String subIdName;

  @ExcelIgnore
  @Schema(title = "产品")
  private String subId;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 型号 */
  @ExcelProperty("型号")
  @Size(max = 50, message = "型号长度不能超过50")
  private String model;

  /** 单位 */
  @ExcelProperty("单位")
  @Size(max = 50, message = "单位长度不能超过50")
  private String unit;

  /** 采购交期 */
  @ExcelProperty("采购交期")
  @IntegerString(
    message = "采购交期数值格式不正确",
    label = "采购交期",
    min = 0
  )
  private String purchasingDeliveryTime;

  /** 采购成本 */
  @ExcelProperty("采购成本")
  @DecimalString(message = "采购成本小数格式不正确", label = "采购成本")
  private String procurementCost;

  /** 产品长度 */
  @ExcelProperty("产品长度")
  @DecimalString(message = "产品长度小数格式不正确", label = "产品长度")
  private String productLength;

  /** 产品宽度 */
  @ExcelProperty("产品宽度")
  @DecimalString(message = "产品宽度小数格式不正确", label = "产品宽度")
  private String productWidth;

  /** 产品高度 */
  @ExcelProperty("产品高度")
  @DecimalString(message = "产品高度小数格式不正确", label = "产品高度")
  private String productHeight;

  /** 产品净重 */
  @ExcelProperty("产品净重")
  @DecimalString(message = "产品净重小数格式不正确", label = "产品净重")
  private String productNet;

  /** 单品毛重 */
  @ExcelProperty("单品毛重")
  @DecimalString(message = "单品毛重小数格式不正确", label = "单品毛重")
  private String productGross;

  /** 产品材质 */
  @ExcelProperty("产品材质")
  @Size(max = 50, message = "产品材质长度不能超过50")
  private String material;

  /** 数量 */
  @ExcelProperty("数量")
  @LongString(message = "数量数值格式不正确", label = "数量")
  private String num;
}
